package com.lihuan.service;

import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageInfo;
import com.lihuan.beans.*;
import com.lihuan.common.util.Messages;
import com.lihuan.entity.Message;
import org.springframework.util.Assert;

import java.util.List;

public interface MessageService {

    /** 查询留言列表 */
    PageInfo<MessageListItem> listMessage(MessageList param);

    /** 查询个人留言列表 */
    PageInfo<MessageListItem> listPersonMessage(MessageList param);

    /** 添加留言 */
    void addMessage(MessageAdd param);

    /** 修改留言 */
    void editMessage(MessageEdit param);

    /** 删除留言 */
    void removeMessage(MessageId param);

    /** 留言详情 */
    MessageInfo infoMessage(MessageId param);

    /** 根据 ID 检查 留言 对象 */
    default Message existMessageById(String id) {
        Message bean = this.getMessageById(id);
        Assert.notNull(bean, Messages.WARN_OBJECT_NON_EXIST);
        return bean;
    }

    /** 根据 ID 获取 留言 对象 */
    public Message getMessageById(String id);

     JSONArray listToTree();

}
